<template>
  <div class="feedback-card">
    <div class="emoji-circle">
      <!-- 使用传入的品牌图片地址 -->
      <img
        :src="avatarUrl"
        class="emoji"
      >
    </div>
    <div class="stars">
      <!-- 根据传入的评分动态生成星星 -->
      <span
        v-for="star in 5"
        :key="star"
        :class="{ 'filled': star <= rating, 'empty': star > rating }"
      >★</span>
    </div>
    <p class="text">
      <!-- 使用传入的文本内容（支持换行） -->
      {{ text }}
    </p>
  </div>
</template>

<script>
  export default {
    // 定义接收的外部参数
    props: {
      // 头像图片URL - 必须传入，无默认值
      avatarUrl: {
        type: String,
        required: true
      },
      // 评分（1-5）
      rating: {
        type: Number,
        default: 5,
        validator: value => value >= 1 && value <= 5 && Number.isInteger(value),
        description: "评分等级（1-5）"
      },
      // 评论文本（支持换行符\n）
      text: {
        type: String,
        required: true,
        description: "评论内容，支持用\\n换行"
      }
    }
  }
</script>

<style scoped>

  .feedback-card {
    width: 200px;
    background-color: #b9f6ca;
    border-radius: 20px;
    text-align: center;
    padding: 20px;
    font-family: Arial, sans-serif;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
  }

  .feedback-card:hover {
    transform: translateY(-5px);
  }

  .emoji-circle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-color: #ffa726;
    margin: 0 auto 10px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .emoji {
    font-size: 40px;
    max-width: 100%;
    max-height: 100%;

    /* 保持图片比例，避免拉伸变形 */
    object-fit: contain; /* 优先完整显示图片，可能留空白 */
    /* 或使用 object-fit: cover; 填充容器（可能裁剪部分图片） */

    /* 可选：移除默认边框和间距 */
    border: none;
    padding: 0;
    margin: 0;
  }

  .stars {
    font-size: 20px;
    margin-bottom: 15px;
  }

  /* 动态星星样式 */
  .stars .filled {
    color: #ffeb3b;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  }

  .stars .empty {
    color: #d3d3d3;
  }

  .text {
    font-size: 16px;
    color: #000;
    line-height: 1.4;
    margin: 0;
    white-space: pre-line; /* 支持\n换行 */
  }

  /* 响应式调整 */
  @media (max-width: 600px) {
    .feedback-card {
      width: 90%;
    }
  }
</style>
